{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.patches import Patch\n",
    "from flaml import AutoML\n",
    "\n",
    "\n",
    "rng = np.random.RandomState(1338)\n",
    "cmap_data = plt.cm.Paired\n",
    "cmap_cv = plt.cm.coolwarm"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Inspecting FLAML's cross validation\n",
    "\n",
    "This notebook shows how to perform cross-validation using FLAML, retrieving the sklearn splitter used at the end of the procedure.\n",
    "\n",
    "> The [relevant example](https://scikit-learn.org/stable/auto_examples/model_selection/plot_cv_indices.html) from the sklearn documentation has been used as a starting point. However, in this example, we set the label as uniform across the whole dataset to avoid having groups associated to a single label.\n",
    "\n",
    "\n",
    "## Group K fold\n",
    "Generate a multi class classification problem with suitable properties to run cross validation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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pc/Yrl27lJ+fr8zMTCUmJkqStmzZcrFbBwAA9UxAz9iUlpbq4MGD+u677/Tpp5/queeeU58+fdSrVy/dfffdatGihcrLy/XKK69o7969mjt3rmbOnOkzR3JysoqLi7Vq1Sr9+OOPKikpUVJSkkJDQ73XW7ZsmSZOnBjI1gEAgAUCGmzee+89JSQkKDk5WT179tSaNWs0bdo0LV26VEFBQWrXrp2mTp2q559/Xm3atNG8efOUkZHhM0daWpqGDx+u/v37q1GjRpo8ebIaNWqkrKwsLVy4UK1bt1ZmZqZefPHFQLYOAAAsELCnorKysryfVXMu6enpSk9P9xkbNGiQz/aMGTM0Y8YMn7EBAwZowIABPmPGmHPuq7S0VKWlpd7twsLC8/YHAADqL6u/KyojI0PR0dHen59fnwMAAOxkdbAZP368CgoKvD8HDhyo65YAAMBFVCsf0FdXXC6XXC5XXbcBAABqidVnbAAAwKXlogeb3NxcORwObdu27WLvCgAAXOI4YwMAAKxBsAEAANYIWLDxeDyaPHmyWrRoIZfLpaSkJE2aNOmMusrKSg0bNkzNmzdXeHi4rrnmGr388ss+NWvXrlXnzp3VoEEDxcTEqGvXrtq3b58kafv27brxxhvldrsVFRWljh078vUKAABAUgDfFTV+/Hj94x//0EsvvaTrr79eeXl52rVr1xl1Ho9HzZo108KFCxUbG6uPP/5Y9913nxISEnTnnXeqoqJCt912m+699169+eabKisr0yeffOL9dvCBAweqffv2mjFjhoKCgrRt2zaFhIQE6jAAAEA9FpBgU1RUpJdfflmvvvqqBg8eLEm66qqrdP311ys3N9enNiQkRE8//bR3u3nz5tqwYYMWLFigO++8U4WFhSooKFCvXr101VVXSZJSUlK89fv379fDDz+sVq1aSZJatmwZiEMAAAAWCMhTUTt37lRpaam6devmV/306dPVsWNHNWrUSJGRkfr73/+u/fv3S5IaNmyoIUOGqEePHurdu7defvll5eXlea/70EMP6S9/+Yu6d++uzMxMffPNN4E4BAAAYIGABJvw8HC/a+fPn6+xY8dq2LBhev/997Vt2zbdc889Kisr89bMnj1bGzZsUFpamv71r3/p6quv1saNGyVJTz31lHbs2KFbb71Vq1evVuvWrbV48eJAHAYAAKjnAhJsWrZs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68LCQm3atIm1rqaSkhI5nb7/4oKCguTxeCSx1heTP2ubmpqqo0ePKicnx1uzevVqeTwedenSpWYN1OilxzDz5883LpfLZGVlmS+//NLcd999JiYmxhw8eLCuW6vXHnjgARMdHW3Wrl1r8vLyvD8lJSXemuHDh5ukpCSzevVqs2XLFpOammpSU1PrsGt7nPquKGNY60D55JNPTHBwsJk0aZLZs2ePmTdvnomIiDD/+7//663JzMw0MTExZunSpeazzz4zffr04S3IF2Dw4MGmadOm3rd7L1q0yFx++eVm3Lhx3hrW+sIVFRWZrVu3mq1btxpJZurUqWbr1q1m3759xhj/1rZnz56mffv2ZtOmTWb9+vWmZcuWvN371+KVV14xSUlJJjQ01HTu3Nls3Lixrluq9yRV+TN79mxvzfHjx82IESPMZZddZiIiIsztt99u8vLy6q5pi5webFjrwPm///s/06ZNG+NyuUyrVq3M3//+d5/LPR6PmTBhgomLizMul8t069bNfPXVV3XUbf1VWFhoRo0aZZKSkkxYWJi58sorzeOPP25KS0u9Naz1hVuzZk2Vj9GDBw82xvi3tvn5+WbAgAEmMjLSREVFmXvuuccUFRXVuDeHMad8DCMAAEA9xmtsAACANQg2AADAGgQbAABgDYINAACwBsEGAABYg2ADAACsQbABAADWINgAAABrEGwA1DsOh0NLliy54OuvXbtWDofjjC/2rK4hQ4botttuq9EcAAKLYAPgDD/88IMeeOABJSUlyeVyKT4+Xj169FB2dnZdtxYQaWlpysvLU3R0dF23AiDAguu6AQC/Pv369VNZWZnmzJmjK6+8UocOHdKqVauUn59f160FRGhoqOLj4+u6DQAXAWdsAPg4evSo1q1bp+eff1433nijrrjiCnXu3Fnjx4/XH/7wB2/d1KlT1bZtWzVo0ECJiYkaMWKEiouLvZdnZWUpJiZGb7/9tq655hpFREToj3/8o0pKSjRnzhwlJyfrsssu01//+ldVVlZ6r5ecnKyJEydqwIABatCggZo2barp06efs+cDBw7ozjvvVExMjBo2bKg+ffooNzf3rPWnPxX1c68rVqxQSkqKIiMj1bNnT+Xl5XmvU1lZqYceekgxMTGKjY3VuHHjdPpX7Xk8HmVkZKh58+YKDw9Xu3bt9O9//1uSZIxR9+7d1aNHD+/1jhw5ombNmumJJ544940CwG8EGwA+IiMjFRkZqSVLlqi0tPSsdU6nU9OmTdOOHTs0Z84crV69WuPGjfOpKSkp0bRp0zR//ny99957Wrt2rW6//Xa9++67evfddzV37lz9z//8j/ef/89eeOEFtWvXTlu3btWjjz6qUaNGaeXKlVX2UV5erh49esjtdmvdunXKzs72BpOysjK/j7ukpEQvvvii5s6dq48++kj79+/X2LFjvZdPmTJFWVlZmjVrltavX68jR45o8eLFPnNkZGTo9ddf18yZM7Vjxw6lp6frz3/+sz788EM5HA7NmTNHmzdv1rRp0yRJw4cPV9OmTQk2QCDV+PvBAVjn3//+t7nssstMWFiYSUtLM+PHjzfbt28/53UWLlxoYmNjvduzZ882kszXX3/tHbv//vtNRESEKSoq8o716NHD3H///d7tK664wvTs2dNn7v79+5vf//733m1JZvHixcYYY+bOnWuuueYa4/F4vJeXlpaa8PBws2LFiip7XbNmjZFkfvrpp7P2On36dBMXF+fdTkhIMJMnT/Zul5eXm2bNmpk+ffoYY4w5ceKEiYiIMB9//LHPvoYNG2YGDBjg3V6wYIEJCwszjz76qGnQoIHZvXt3lT0CuDCcsQFwhn79+un777/XsmXL1LNnT61du1YdOnRQVlaWt+aDDz5Qt27d1LRpU7ndbg0aNEj5+fkqKSnx1kREROiqq67ybsfFxSk5OVmRkZE+Y4cPH/bZf2pq6hnbO3furLLX7du36+uvv5bb7faebWrYsKFOnDihb775xu9jPr3XhIQEb18FBQXKy8tTly5dvJcHBwerU6dO3u2vv/5aJSUluvnmm719REZG6vXXX/fp44477tDtt9+uzMxMvfjii2rZsqXfPQI4P148DKBKYWFhuvnmm3XzzTdrwoQJ+stf/qInn3xSQ4YMUW5urnr16qUHHnhAkyZNUsOGDbV+/XoNGzZMZWVlioiIkCSFhIT4zOlwOKoc83g8F9xncXGxOnbsqHnz5p1xWaNGjfyep6q+zGmvoTlfH5L0zjvvqGnTpj6XuVwu7+8lJSXKyclRUFCQ9uzZ4/f8APxDsAHgl9atW3s/OyYnJ0cej0dTpkyR03nyxO+CBQsCtq+NGzeesZ2SklJlbYcOHfSvf/1LjRs3VlRUVMB6OFV0dLQSEhK0adMm/fa3v5UkVVRUKCcnRx06dJB0cn1cLpf279+vG2644axzjRkzRk6nU8uXL9ctt9yiW2+9VTfddNNF6Ru4FBFsAPjIz8/XHXfcoaFDh+raa6+V2+3Wli1bNHnyZPXp00eS1KJFC5WXl+uVV15R7969lZ2drZkzZwash+zsbE2ePFm33XabVq5cqYULF+qdd96psnbgwIF64YUX1KdPHz3zzDNq1qyZ9u3bp0WLFmncuHFq1qxZQHoaNWqUMjMz1bJlS7Vq1UpTp071+YA/t9utsWPHKj09XR6PR9dff70KCgqUnZ2tqKgoDR48WO+8845mzZqlDRs2qEOHDnr44Yc1ePBgffbZZ7rssssC0idwqeM1NgB8REZGqkuXLnrppZf029/+Vm3atNGECRN077336tVXX5UktWvXTlOnTtXzzz+vNm3aaN68ecrIyAhYD2PGjNGWLVvUvn17Pfvss5o6dap69OhRZW1ERIQ++ugjJSUlqW/fvkpJSdGwYcN04sSJgJ7BGTNmjAYNGqTBgwcrNTVVbrdbt99+u0/NxIkTNWHCBGVkZCglJUU9e/bUO++8o+bNm+uHH37QsGHD9NRTT3nP8jz99NOKi4vT8OHDA9YncKlzmOo8iQwAF1lycrJGjx6t0aNH13UrAOohztgAAABrEGwAAIA1eCoKAABYgzM2AADAGgQbAABgDYINAACwBsEGAABYg2ADAACsQbABAADWINgAAABrEGwAAIA1/j+CgWheEi1ndQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Generate the class/group data\n",
    "n_points = 100\n",
    "X = rng.randn(100, 10)\n",
    "\n",
    "np.random.seed(2023)\n",
    "y = (np.random.rand(n_points) > 0.5).astype(int)  # modified to avoid groups having uniform label\n",
    "# Generate uneven groups\n",
    "group_prior = rng.dirichlet([2] * 10)\n",
    "groups = np.repeat(np.arange(10), rng.multinomial(100, group_prior))\n",
    "\n",
    "\n",
    "def visualize_groups(classes, groups, name):\n",
    "    # Visualize dataset groups\n",
    "    fig, ax = plt.subplots()\n",
    "    ax.scatter(\n",
    "        range(len(groups)),\n",
    "        [0.5] * len(groups),\n",
    "        c=groups,\n",
    "        marker=\"_\",\n",
    "        lw=50,\n",
    "        cmap=cmap_data,\n",
    "    )\n",
    "    ax.scatter(\n",
    "        range(len(groups)),\n",
    "        [3.5] * len(groups),\n",
    "        c=classes,\n",
    "        marker=\"_\",\n",
    "        lw=50,\n",
    "        cmap=cmap_data,\n",
    "    )\n",
    "    ax.set(\n",
    "        ylim=[-1, 5],\n",
    "        yticks=[0.5, 3.5],\n",
    "        yticklabels=[\"Data\\ngroup\", \"Data\\nclass\"],\n",
    "        xlabel=\"Sample index\",\n",
    "    )\n",
    "\n",
    "\n",
    "visualize_groups(y, groups, \"no groups\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_cv_indices(cv, X, y, group, ax, n_splits, lw=10):\n",
    "    \"\"\"Create a sample plot for indices of a cross-validation object.\n",
    "       Function source: https://scikit-learn.org/stable/auto_examples/model_selection/plot_cv_indices.html\n",
    "    \"\"\"\n",
    "\n",
    "    # Generate the training/testing visualizations for each CV split\n",
    "    for ii, (tr, tt) in enumerate(cv.split(X=X, y=y, groups=group)):\n",
    "        # Fill in indices with the training/test groups\n",
    "        indices = np.array([np.nan] * len(X))\n",
    "        indices[tt] = 1\n",
    "        indices[tr] = 0\n",
    "\n",
    "        # Visualize the results\n",
    "        ax.scatter(\n",
    "            range(len(indices)),\n",
    "            [ii + 0.5] * len(indices),\n",
    "            c=indices,\n",
    "            marker=\"_\",\n",
    "            lw=lw,\n",
    "            cmap=cmap_cv,\n",
    "            vmin=-0.2,\n",
    "            vmax=1.2,\n",
    "        )\n",
    "\n",
    "    # Plot the data classes and groups at the end\n",
    "    ax.scatter(\n",
    "        range(len(X)), [ii + 1.5] * len(X), c=y, marker=\"_\", lw=lw, cmap=cmap_data\n",
    "    )\n",
    "\n",
    "    ax.scatter(\n",
    "        range(len(X)), [ii + 2.5] * len(X), c=group, marker=\"_\", lw=lw, cmap=cmap_data\n",
    "    )\n",
    "\n",
    "    # Formatting\n",
    "    yticklabels = list(range(n_splits)) + [\"class\", \"group\"]\n",
    "    ax.set(\n",
    "        yticks=np.arange(n_splits + 2) + 0.5,\n",
    "        yticklabels=yticklabels,\n",
    "        xlabel=\"Sample index\",\n",
    "        ylabel=\"CV iteration\",\n",
    "        ylim=[n_splits + 2.2, -0.2],\n",
    "        xlim=[0, 100],\n",
    "    )\n",
    "    ax.set_title(\"{}\".format(type(cv).__name__), fontsize=15)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Run flaml, evaluating the results on a cross-validation, without setting groups first. This applies the default split settings\n",
    "Set keep_search_state to True to then recover the splitter object."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAHJCAYAAABHfXcUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABEz0lEQVR4nO3deXgUVb7G8bezJ2RhD/uOAqKsgiyyCAojioIrg4rAoCg8iKwyMxHRcaIooI6Mer2XxRVQR0dBUYZNQECIbCqrEkBlUZYECCQkfe4fTNp00oHu5HQ6Tb6f58kjfepU1a/rVHe/VldXOYwxRgAAACi2kEAXAAAAcKkgWAEAAFhCsAIAALCEYAUAAGAJwQoAAMASghUAAIAlBCsAAABLCFYAAACWEKwAAAAsIVgBPnA4HG5/ISEhSkhI0DXXXKMXXnhB586dC3SJl5wVK1bI4XDo/vvvLzAtPT1dU6ZMUevWrRUXF6fIyEjVqlVLHTp00Lhx4/Tll1+WfMFFcP/998vhcGjFihUFpi1ZskSdO3dWXFyca7+TpDlz5sjhcOiJJ57wa22pqalyOBzq1q2bW3vu+j2NiyTt3LlTNWvWlMPh0PDhw5V7k49u3boVeB3l/yuO3OWnpqZ6PU9JbUuUDWGBLgAIRoMGDZIk5eTkKDU1VV999ZXWr1+vhQsXavHixQoLu3RfWvXq1dO+ffsU6Lth7d+/X127dlVqaqrKlSun9u3bKzExUceOHdPGjRu1bt06ffvtt+rSpYtrnjlz5mjw4MGaPHlyiX6IFnWb7d+/X/369VNWVpZ69uypqlWr+qlCu3bs2KHu3bvr0KFDevjhh/Xyyy8XCEy9evVStWrVAlQh4D+X7rs/4Edz5sxxe7x+/Xp169ZNS5cu1bx583TPPfcEprAyZOTIkUpNTVWvXr30zjvvqGLFiq5pTqdTK1as0NatWwNYofeSk5P12GOPqU6dOm7t//nPf3T69GklJSXpySefdJvWr18/XXPNNapcuXJJlnpR33//va677jodPnxYo0aN0osvvuix32OPPVbgKBhwKeCrQMCC9u3bu74S+fzzzwNbTBlw5swZffbZZ5Kkl19+2S1USVJISIiuu+46jR49OgDV+a569epq0qSJYmJi3Np/+uknSVKDBg0KzJOQkKAmTZqUqmD13XffqXv37jp8+LDGjBlTaKgCLmUEK8CSK664QpJ05MiRAtOMMXr33Xd13XXXqUKFCoqKilLTpk31xBNPKCMjo0D/vOeJvPXWW2rTpo1iYmJUtWpVDRo0SD///HOhdSxevFh9+vRRlSpVFBkZqQYNGmjMmDE6evRogb4HDx7U1KlT1bVrV9WsWVMRERGqVq2a+vfvrw0bNrj1zT3Xad++fZLczzerV6+eW9/s7Gy98sor6tChg+Lj4xUdHa2WLVvqhRdeUHZ2tse6v/vuO916662qUKGC4uLidO2112rx4sUe+x4/fty1nCpVqhS6LfLq1q2bBg8eLEmaMmWKW/25RyDzns916NAh/elPf1KtWrUUFhamF154wW/bLP85VrnzTZ48WZI0ePBg13y5X2Fe6LwgX/c3STpw4IDuvfdeValSRTExMWrTpo3eeustr7atJH377bfq3r27jhw5ovHjx2vatGlez3shGRkZeuqpp9S8eXNFR0crISFBXbp00bx583xe1po1a9SzZ0/FxcWpfPny6tWrl9avX2+lTiAXXwUClpw8eVKSCpwH43Q6dc899+jdd99VbGys2rZtqwoVKmjjxo2aMmWKPvvsM61YsULR0dEFlvn888/rn//8p6699lrdcsstWrdund544w0tW7ZMa9euVa1atdz6P/bYY3r22WcVERGhq6++WtWrV9eWLVs0Y8YMffzxx1qzZo0SExNd/f/9739r4sSJuvzyy3XVVVcpPj5eu3fv1ocffqiFCxdq4cKFuuGGGyRJ1apV06BBg/T+++/r9OnTrvPMJLkdNTlz5oz69Omj5cuXq2LFirrmmmsUFRWl9evX69FHH9Xy5cv14YcfKiTk9/+v27hxo7p3765Tp06pefPmat68uXbv3q0bb7xRDz30UIHtUrlyZUVFRens2bP65z//qUmTJl10fHr37q3s7GytWbNGLVq0UMuWLV3TGjVq5Nb3119/1dVXX63s7Gx17txZZ8+edR1N8sc2yy93vs2bN2vLli3q1KmTq8a8dXtSlP1t79696tixow4dOqQGDRqoZ8+e+vnnn3XfffdpxIgRF922W7duVY8ePfTbb79p0qRJ+vvf/37Rebxx8uRJde/eXSkpKapSpYpuuukmnT59WsuWLdOqVau0du1ar4+KLVy4UP369VN2drbatWunBg0aaMuWLerSpUuhJ+ADRWIAeE2SKexl06VLFyPJvPXWW27tU6dONZJMt27dzMGDB13tmZmZZujQoUaSmThxots8Xbt2NZJMWFiYWbRokas9KyvLDBw40Egyt9xyi9s8CxYsMJJM8+bNze7du13tTqfTPP7440aSueuuu9zm2bp1q/n2228LPJfFixebiIgI07BhQ+N0Ot2m1a1bt9BtYIwxDz/8sGtdJ06ccLWnp6ebG2+80Ugyr7zyilt9zZo1M5LM448/7rasmTNnurb5oEGD3KY9+OCDrmlt27Y1TzzxhFm0aJE5cuRIobXNnj3bSDKTJ0/2OH358uWuZfbr18+cOXOmQB9/bLNBgwYZSWb58uVu7ZMnTzaSzOzZs71+LkXZ33r37m0kmSFDhphz58652j/++GMTGhpqJJmuXbt6XH/79u1NpUqVjCSTlJRU6HPMlbtv53+unowcOdJIMt27dzfp6emu9u3bt5uqVasaSeaTTz7xuPy9e/e62tLT002VKlWMJDNr1ixXu9PpNBMnTnSNeWH7BeALghXgg/zBKicnx+zZs8cMHz7cFXbyfjCdO3fOVK5c2ZQrV84cOnSowPIyMjJMtWrVTIUKFUxOTo6rPffD4Y9//GOBeX777TcTExNjHA6H2b9/v6u9RYsWRpLZtm1bgXmcTqdp2bKlCQ0NNb/++qtXzzU3wG3dutWt/UIh4fDhwyY8PNzUrl3bZGRkFJh+8OBBExERYa666ipX27Jly4wk06BBA5OdnV1gnvbt23sMVhkZGWbw4MHG4XC4xkWScTgcpl27dmbevHkFluVtsIqMjDQ//fSTxz4XUpRtZoy9YFWU/e2HH34wkkx8fLxbEM511113XTBY5f61a9eu0OeXV+6+Xdhf7nM9deqUiY6ONiEhIWb79u0FlvPSSy8ZSaZnz54el583WM2aNctIMl26dCmwnKysLFOrVi2CFazhq0CgCDxda2fYsGF67bXX3KZ98803+u2333T99de7fQWXKzo6Wm3atNGiRYu0e/duXX755W7T77777gLzVKpUSTfccIM++ugjrV69WgMGDNCRI0e0ZcsWNW7cWM2bN/dYb6dOnbR582alpKSoV69ermmZmZlavHixvv76a/3666/KysqSJG3btk2StHv3bl155ZVebZcVK1bo3Llz6t27t8evNqtVq6bGjRtr27ZtOnPmjKKjo7Vq1SpJ0u23367Q0NAC8wwYMMDjeTDR0dGaNWuW/vznP+uDDz7Q6tWrtWHDBh0+fFhff/217r77bn311VdFOoG6devWqlmzZqHTbW4zm4qyv61evVrS+a9KExISCswzYMAAzZ8/v9B1tmzZUrt379bXX3+tiRMn6tlnn/Wq1sIut5D7lWdKSorOnDmjtm3bqkmTJgX63XvvvRo1apTWrFkjp9Pp9tVyfrn7mKfXU3h4uG6//XbXOXRAcRGsgCLIPVfm7Nmz2rJli3bs2KHXX39dHTt2dDtfI/cihUuWLLnohQ9/++23AsGqbt26Hvvmnvj8yy+/uK1n9+7dXq0n17Zt29S3b98LXkwx99wxb+Qu5/XXX9frr79+wb7Hjh1TzZo1Xc/hYs+1MI0aNdLEiRM1ceJESefDxRNPPKFPPvlEL730ku6880516tTJ6+cgqcBlD/Kyvc1sKsr+Vtzt36JFCz333HO66aabNHXqVMXFxemvf/3rRWu92OUWcusqbP3ly5dXQkKC0tLSdPz4cVWqVOmiyyrqcwR8QbACiiD/dayee+45TZgwQSNGjFD37t1db+BOp1PS+Q//i324X+iD4WJy11OtWjW3o1Ge5NZmjNGdd96p1NRUDR8+XMOHD1eDBg0UGxsrh8OhP//5z0pOTvbpopa5dbRs2VItWrS4YN/IyEivl+uL1q1b66OPPlL79u21ceNGLVq0yOdgFRUV5bHdH9vMppLa3/Lr2bOnFixYoNtuu01JSUmKj4/XqFGjrC2/MMW9SjvgDwQrwILx48frP//5j7744gtNmTJFs2bNkiTXr/aaNGlSIIx5Y9++fbrqqqs8tktSjRo13NZTuXJlr9ezY8cO7dixQ23bttUrr7xSYPqPP/7oc725dXTu3Fn/+Mc/vJqnevXqkn5/TvkV1n4hISEh6tq1qzZu3Oh2hK64/LHNbCrK/mZr+/ft21dvvPGG7rnnHo0ePVpxcXGuy1sURe6+Xdj609LSdOLECUVHR6tChQoXXJY/9jGgMFzHCrDkmWeekSS9+eabrjfqq6++WgkJCVq5cqWOHTvm8zIXLFhQoO3YsWP64osvXOdNSec/UJs0aaLvv/9eu3bt8mrZx48fd83radqSJUs8zhcRESFJHq9H1b17d4WGhmrhwoVe3zfx2muvlSR98MEHriMueRXlekWStGfPHklyO1fqQrV7wx/bzKai7G+dO3eWdP76Z+np6QWm+7L9BwwYoNdee03GGA0bNkzvvfee1/Pm16ZNG0VHRyslJUW7d+8uMD33GludOnW64PlV0u/7mKfXU3Z2tj744IMi1wnkR7ACLGnVqpVuvfVWZWdna+rUqZLOf901YcIEnTx5Uv379/d4ROPnn3/Wm2++6XGZ8+fPd7uSe3Z2th599FGdPn1aN910k9u5QElJSXI6nbrtttu0efPmAss6evSo23lPjRo1UkhIiJYtW+b2wXX27FkNHz680A/m3CMJO3fuLDCtZs2aGjJkiFJTUzVgwAAdPny4QJ89e/a4fZB169ZNTZo00Q8//KC//e1vbn1fe+01rV27tsAyTpw4oXbt2un99993nTiey+l06n//93/18ccfKyQkRP369fOqdm/4Y5vZVJT9rWHDhrrhhhuUnp6usWPHKicnxzXt008/9Tkc/elPf9KMGTOUk5OjgQMH6tNPPy3ScylXrpyGDBkip9OpESNG6PTp065pu3btcu0r3nzleMcdd6hSpUpasWKF5s6d62o3xmjy5Mnav39/kWoEPArkTxKBYKMLXMfKGGM2b95sHA6HiYqKcl1DKCcnx9x7771GkomIiDDt27c3d999t+nfv7+54oorjMPhMC1atHBbTu5PxkeMGGEcDofp2rWrufvuu039+vWNJFOjRg2zb9++Auv/85//bCSZkJAQ07p1a3PHHXeY22+/3bRq1cqEhoaahIQEt/7Dhg0zkkx0dLTp06ePuf32201iYqKpXLmyuf/++z3+1H/atGlGkklMTDR33323GTp0qNt1kTIyMsz1119vJJly5cqZTp06mQEDBpi+ffuaRo0aebwG17p160y5cuWMJHPllVeaAQMGmKuvvto4HA7XdbHyXm7h+PHjrrGIjY01Xbt2NQMGDDA33XSTqVevnuuyC8nJyW7rOXPmjOv6R127djWDBw82Q4cONWvWrDHG/H65hfyXdvD3NrN5Haui7G8//PCDSUxMNJJMw4YNzd133226dOliHA6HGTFixAUvt1DYtnryySeNJBMVFeX2vHy5jlV6erpp06aNkWSqVq1q7rjjDnPjjTeaqKgoI8mMGjWqwDyeLrdgjDEfffSR65pc7du3NwMGDDDNmjUz4eHhrjHlcguwgWAF+OBiwcoYY/r3728kmfHjx7u1//vf/zZ9+vQxVatWNeHh4aZq1aqmTZs2ZsKECSYlJcWtb94Ph9mzZ5uWLVuaqKgoU6lSJXPvvfeaAwcOFLr+lStXmjvuuMPUqFHDhIeHm0qVKpmrrrrKjBw50qxcudKtb3Z2tpk2bZpp1qyZiYqKMomJiWbgwIEmNTW10A/1c+fOmb/+9a+mYcOGJjw83EgydevWLbDcuXPnmuuuu85UrFjRhIeHmxo1apgOHTqYKVOmmJ07dxaoe+vWrebmm282CQkJply5cqZDhw5m4cKFHsOO0+k0a9euNU888YTp1q2bqVevnomKijJRUVGmYcOG5t5773WFpfw2bNhgrr/+epOQkOC6Blbuc/QmWPljm9kMVrl82d+MMSY1NdX88Y9/NJUqVTJRUVGmZcuWZs6cOWbv3r1FClbGGDN+/HhX+F23bp0xxrdgZcz561lNmTLFNGvWzERGRpq4uDjTuXNn884773jsX1iwMsaYL7/80nTv3t2UK1fOxMfHmx49epivvvrqotsS8IXDmAD9fAVAobp166aVK1dq7969/BQcAIII51gBAABYQrACAACwhGAFAABgCedYAQAAWMIRKwAAAEsIVgAAAJZwr8BicDqd+uWXXxQXF8fNQAEACBLGGJ08eVI1atS46C2RfEWwKoZffvlFtWvXDnQZAACgCA4cOODx3p/FQbAqhri4OEnnByY+Pj7A1QAAAG+kp6erdu3ars9xmwhWxZD79V98fDzBCgCAIOOP03g4eR0AAMASghUAAIAlBCsAAABLCFYAAACWEKwAAAAsIVgBAABYQrACAACwhGAFAABgCcEKAADAEoIVAACAJQQrAAAASwhWAAAAlhCsAAAALCFYAQAAWEKwAgAAsIRgBQAAYAnBCgAAwBKCFQAAgCUEKwAAAEsIVgAAAJYQrAAAACwhWAEAAFhCsAIAALCEYAUAAGAJwQoAAMASghUAAIAlBCsAAABLCFYAAACWEKwAAAAsIVgBAABYQrACAACwhGAFAABgCcEKAADAEoIVAACAJQQrAAAASwhWAAAAlhCsAAAALCFYAQAAWBIW6AIuBaNnHFdEVI4kKSrifNvZrN+nR0VII38Y6TZPVIRDU6tMdWsLiYp2my933uK0+XO9hT3Xwtry1hIV4ZAkmbNnXG2OqGhJcqsv5L9txVlvINo8bfe8z1U6/3y9bSuJfaU44+1pbAM1jt7uZ8XZ9/Kvw9sxC6b3ARvbvajbUyremHlbS1Hfk7zdxsXZL2zvUxdbx4W2se3XT6D2s7yeHBpasNESgpVl+V9wuW2RzrNubeaslBUS7d6xkHmL0+bP9fpaW95azNmC/XJfqG71+WGblESbp+2eX/43zgu1lcS+crE2X8c2UOPo7X7mqc3bmr1Zh6cxC6b3ARvb3eb2LKzN0zq8rcXme5K3r3lv94vizFuUdfjyflRYW0m85m291/gTXwUCAABYUuaD1cyZM1WvXj1FRUWpffv2+vrrrwNdEgAACFJlOljNnz9fY8aM0eTJk/XNN9+oRYsW6tWrl44cORLo0gAAQBAq08Fq+vTpGjZsmAYPHqxmzZrp1VdfVUxMjGbNmhXo0gAAQBAqs8EqKytLKSkp6tmzp6stJCREPXv21Nq1az3Ok5mZqfT0dLc/AACAXGU2WP3222/KyclRYmKiW3tiYqIOHTrkcZ7k5GQlJCS4/mrXrl0SpQIAgCBRZoNVUUyaNElpaWmuvwMHDgS6JAAAUIqU2etYVa5cWaGhoTp8+LBb++HDh1WtWjWP80RGRioyMrIkygMAAEGozB6xioiIUJs2bbR06VJXm9Pp1NKlS9WhQ4cAVgYAAIJVmT1iJUljxozRoEGD1LZtW7Vr104vvPCCTp8+rcGDBwe6NAAAEITKdLC666679Ouvv+rxxx/XoUOH1LJlSy1evLjACe0AAADeKNPBSpJGjhypkSNHXryjlwq7eWRmSFS+fg5FON3vueSPm6/6c72+3jwzby0XuuFp3vqC9SbMnrZ7cW7CXBL7SnHG29PYBmocvd3PirPv5V+Ht2MWTO8DNrZ7UbenVLwx87aWor4nebuNi7Nf2N6nLrYOGzdhLonXfHH2s5LiMMaYkl3lpSM9PV0JCQlKS0tTfHx8oMsBAABe8Ofnd5k9eR0AAMA2ghUAAIAlBCsAAABLCFYAAACWEKwAAAAsIVgBAABYQrACAACwhGAFAABgCcEKAADAEoIVAACAJQQrAAAASwhWAAAAlhCsAAAALCFYAQAAWEKwAgAAsIRgBQAAYAnBCgAAwBKCFQAAgCUEKwAAAEsIVgAAAJYQrAAAACwhWAEAAFhCsAIAALCEYAUAAGAJwQoAAMASghUAAIAlBCsAAABLCFYAAACWEKwAAAAsIVgBAABYQrACAACwhGAFAABgCcEKAADAEoIVAACAJQQrAAAASwhWAAAAlhCsAAAALCFYAQAAWEKwAgAAsIRgBQAAYAnBCgAAwBKCFQAAgCUEKwAAAEsIVgAAAJYQrAAAACwhWAEAAFhCsAIAALCEYAUAAGAJwQoAAMASghUAAIAlBCsAAABLCFYAAACWEKwAAAAsCQt0AZeCn8bco7iIcEmSIypakmTOnnFNd0RFa2qVqW7zhERF62yW+3KiIqSRP4zM1+ZwW1bu8rxts73evMsL+e9zzbu8qIjz/827vKgIhySVqnn9vQ5P27gk2ooyjheq2dNzzb9vS4Ebn+KMo802b8fC03b3tl9x1lGUeS+0jYuzDwSqzea+Yvs16u2Y+XMdJbmNA7VP5fXk0NCCjZYQrCzL/yGW25YVEu3emFWgm85mSZHOs/nm9X4dJbFet+UVsizJfXm5yypN8waqPn+3FWkcJa/2iwvti4Ean2AbC0/b3dt+xVlHkea9wDZ2n8+3fSBQbaVlXynOmPlzHSW5jUvDPuVPfBUIAABgSZkOVl9++aVuvvlm1ahRQw6HQx999FGgSwIAAEGsTAer06dPq0WLFpo5c2agSwEAAJeAMn2O1R/+8Af94Q9/CHQZAADgElGmg5WvMjMzlZmZ6Xqcnp4ewGoAAEBpU6a/CvRVcnKyEhISXH+1a9cOdEkAAKAUIVj5YNKkSUpLS3P9HThwINAlAQCAUoSvAn0QGRmpyMjIQJcBAABKKY5YAQAAWFKmj1idOnVKe/bscT3eu3evNm/erIoVK6pOnToBrAwAAASjMh2sNm7cqO7du7sejxkzRpI0aNAgzZkzJ0BVAQCAYFWmg1W3bt1kjLG6zMJuwhzhdL+XX2E32cwMicrXVrybMNteb97lXeimmHmXl3uTzdI0r7/XEaibMBdlHC9Us6fn6ulmqYEan+KMo79vwuxpLDxtd2/7FWcdRZn3Qtu4OPtAoNps7iu2X6Pejpk/11GS2zhQ+1RJcRjbyaIMSU9PV0JCgtLS0hQfHx/ocgAAgBf8+fnNyesAAACWEKwAAAAsIVgBAABYQrACAACwhGAFAABgCcEKAADAEoIVAACAJQQrAAAASwhWAAAAlhCsAAAALCFYAQAAWEKwAgAAsIRgBQAAYAnBCgAAwBKCFQAAgCUEKwAAAEsIVgAAAJYQrAAAACwhWAEAAFhCsAIAALCEYAUAAGBJWFFmOnHihL7++msdOXJETqfTbdp9991npTAAAIBg43Ow+uSTTzRw4ECdOnVK8fHxcjgcrmkOh4NgBQAAyiyfvwocO3ashgwZolOnTunEiRM6fvy46+/YsWP+qBEAACAo+Bysfv75Z40aNUoxMTH+qAcAACBo+RysevXqpY0bN/qjFgAAgKDm8zlWffr00fjx4/X999/ryiuvVHh4uNv0vn37WisOAAAgmDiMMcaXGUJCCj/I5XA4lJOTU+yigkV6eroSEhKUlpam+Pj4QJcDAAC84M/Pb5+PWOW/vAIAAADO4wKhAAAAlhQpWK1cuVI333yzGjVqpEaNGqlv375atWqV7doAAACCis/B6q233lLPnj0VExOjUaNGadSoUYqOjlaPHj30zjvv+KNGAACAoODzyetNmzbVAw88oEcffdStffr06Xr99de1fft2qwWWZpy8DgBA8PHn57fPR6x+/PFH3XzzzQXa+/btq71791opCgAAIBj5HKxq166tpUuXFmj/z3/+o9q1a1spCgAAIBj5fLmFsWPHatSoUdq8ebM6duwoSVqzZo3mzJmjF1980XqBAAAAwcLnYPXQQw+pWrVqmjZtmhYsWCDp/HlX8+fP1y233GK9QAAAgGDh88nr+B0nrwMAEHxK1cnrAAAA8MyrrwIrVqyoXbt2qXLlyqpQoYIcDkehfY8dO2atOAAAgGDiVbCaMWOG4uLiXP++ULACAAAoqzjHqhg4xwoAgOBTqs6xCg0N1ZEjRwq0Hz16VKGhoVaKAgAACEY+B6vCDnBlZmYqIiKi2AUBAAAEK6+vY/XSSy9JkhwOh/73f/9XsbGxrmk5OTn68ssv1aRJE/sVAgAABAmvg9WMGTMknT9i9eqrr7p97RcREaF69erp1VdftV8hAABAkPA6WOXeYLl79+7617/+pQoVKvitKAAAgGDk8y1tli9f7o86AAAAgp7PwUqSfvrpJ3388cfav3+/srKy3KZNnz7dSmEAAADBxudgtXTpUvXt21cNGjTQjh071Lx5c6WmpsoYo9atW/ujRgAAgKDg8+UWJk2apHHjxmnbtm2KiorSBx98oAMHDqhr16664447/FEjAABAUPA5WG3fvl333XefJCksLExnzpxRbGysnnzyST377LPWCwQAAAgWPgercuXKuc6rql69un744QfXtN9++81eZQAAAEHG53OsrrnmGq1evVpNmzbVjTfeqLFjx2rbtm3617/+pWuuucYfNQIAAAQFn4PV9OnTderUKUnSlClTdOrUKc2fP1+NGzcus78IHD3juCKiciRJUf+9q8/ZPD+WjIpwf5zbNvKHkfnaHJpaZapbW0hUtMd5i9NWnPXmnTcqwiFJMmfPuNocUdGS5La8kP+25d8mvrQVZ72e5vW2X1HXYXscPY1Z3tpy6yvKOHq7PF/HsTjbvTj9ArGflcRr1Nvxtv36tr0P2H6/CMR+UZzXXqDeuy/W5us2KYnxsf3enVf8E/8s0GaLT8EqJydHP/30k6666ipJ578W5Grr7vLvvBdqi3SedWszZ6WskHw7gA/LK4n15p3XnC3YJ3dndluehedQnPV6mtfbfkVdh+1x9DRmnuoryjh6vTwLY2Z7fErTflac9eZvK8542359294H3Gsr/vYsLftFaX/vvlhbcWsrrK0442P7vbuk+HSOVWhoqG644QYdP37cX/UAAAAELZ9PXm/evLl+/PFHf9RSopKTk3X11VcrLi5OVatW1a233qqdO3cGuiwAABDEfA5Wf/vb3zRu3DgtXLhQBw8eVHp6uttfsFi5cqVGjBihdevWacmSJTp37pxuuOEGnT59OtClAQCAIOXzyes33nijJKlv375yOByudmOMHA6HcnJy7FXnR4sXL3Z7PGfOHFWtWlUpKSnq0qVLgKoCAADBjJsw/1daWpokqWLFioX2yczMVGZmputxMB2hAwAA/udzsOratas/6ggop9Op0aNHq1OnTmrevHmh/ZKTkzVlypQSrAwAAAQTn8+xkqRVq1bpnnvuUceOHfXzzz9Lkt58802tXr3aanElZcSIEfr22281b968C/abNGmS0tLSXH8HDhwooQoBAEAw8DlYffDBB+rVq5eio6P1zTffuL4aS0tL09///nfrBfrbyJEjtXDhQi1fvly1atW6YN/IyEjFx8e7/QEAAOQq0q8CX331Vb3++usKDw93tXfq1EnffPON1eL8yRijkSNH6sMPP9SyZctUv379QJcEAACCnM/nWO3cudPjr+YSEhJ04sQJGzWViBEjRuidd97Rv//9b8XFxenQoUOSzj+P6OiCl78HAAC4GJ+PWFWrVk179uwp0L569Wo1aNDASlEl4ZVXXlFaWpq6deum6tWru/7mz58f6NIAAECQ8vmI1bBhw/TII49o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vfeeKlWqpK+++koPPPCAqlevrjvvvFPZ2dm69dZbNWzYML377rvKysrS119/LYfj/C8EBg4cqFatWumVV15RaGioNm/erPDw8ELryszMVGZmputxenq6/ScPAACCVqkLVidPntSLL76ol19+WYMGDZIkNWzYUJ07d1Zqaqpb3/DwcE2ZMsX1uH79+lq7dq0WLFigO++8U+np6UpLS9NNN92khg0bSpKaNm3q6r9//36NHz9eTZo0kSQ1btz4grUlJye7rQ8AACCvUvdV4Pbt25WZmakePXp41X/mzJlq06aNqlSpotjYWP3P//yP9u/fL0mqWLGi7r//fvXq1Us333yzXnzxRR08eNA175gxY/SnP/1JPXv21DPPPKMffvjhguuaNGmS0tLSXH8HDhwo+hMFAACXnFIXrKKjo73uO2/ePI0bN05Dhw7VF198oc2bN2vw4MHKyspy9Zk9e7bWrl2rjh07av78+brsssu0bt06SdITTzyh7777Tn369NGyZcvUrFkzffjhh4WuLzIyUvHx8W5/AAAAuUpdsGrcuLGio6O1dOnSi/Zds2aNOnbsqIcfflitWrVSo0aNPB51atWqlSZNmqSvvvpKzZs31zvv/H6V1ssuu0yPPvqovvjiC/Xv31+zZ8+2+nwAAEDZUeqCVVRUlCZOnKgJEybojTfe0A8//KB169bp//7v/wr0bdy4sTZu3KjPP/9cu3btUlJSkjZs2OCavnfvXk2aNElr167Vvn379MUXX2j37t1q2rSpzpw5o5EjR2rFihXat2+f1qxZow0bNridgwUAAOCLUnfyuiQlJSUpLCxMjz/+uH755RdVr15dw4cPL9DvwQcf1KZNm3TXXXfJ4XBowIABevjhh/XZZ59JkmJiYrRjxw7NnTtXR48eVfXq1TVixAg9+OCDys7O1tGjR3Xffffp8OHDqly5svr378/J6QAAoMhKZbAKCQnRX/7yF/3lL38pMM2Y3++hFBkZqdmzZxf4+i45OVmSlJiYWOg5UxEREXr33Xet1GvCY2QuchNm5bt3U3Fvwmzy3ffJl5uveqrF0/IuVnOgb8Kct2bXTTbz1FzabsJcnDEribaL7Rc2trGn5Xm6+aqndXhbS3HWUeSavXx9F+V1ljtvSb8PlOR4294HbL9f5J+3OO+r3s5bnP2nKP1svB5t34TZ9vtASXGYvEkF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AABYQrACAACwhGAFAABgCcEKAADAEoIVAACAJQQrAAAASwhWAAAAlhCsAAAALCFYAQAAWEKwAgAAsIRgBQAAYAnBCgAAwBKCFQAAgCUEKwAAAEsIVgAAAJYQrAAAACwhWAEAAFhCsAIAALCEYAUAAGAJwQoAAMASghUAAIAlBCsAAABLCFYAAACWEKwAAAAsIVgBAABYQrACAACwhGAFAABgCcEKAADAEoIVAACAJQQrAAAASwhWAAAAlhCsAAAALCFYAQAAWEKwAgAAsIRgBQAAYAnBCgAAwJKwQBcQzIwxkqT09PQAVwIAALyV+7md+zluE8GqGI4ePSpJql27doArAQAAvjp69KgSEhKsLpNgVQwVK1aUJO3fv9/6wMA36enpql27tg4cOKD4+PhAl1OmMRalB2NRujAepUdaWprq1Knj+hy3iWBVDCEh509RS0hI4EVSSsTHxzMWpQRjUXowFqUL41F65H6OW12m9SUCAACUUQQrAAAASwhWxRAZGanJkycrMjIy0KWUeYxF6cFYlB6MRenCeJQe/hwLh/HHbw0BAADKII5YAQAAWEKwAgAAsIRgBQAAYAnBCgAAwBKCVRHNnDlT9erVU1RUlNq3b6+vv/460CVd8pKTk3X11VcrLi5OVatW1a233qqdO3e69Tl79qxGjBihSpUqKTY2VrfddpsOHz4coIrLjmeeeUYOh0OjR492tTEWJevnn3/WPffco0qVKik6OlpXXnmlNm7c6JpujNHjjz+u6tWrKzo6Wj179tTu3bsDWPGlKScnR0lJSapfv76io6PVsGFDPfXUU273pGMs/OPLL7/UzTffrBo1asjhcOijjz5ym+7Ndj927JgGDhyo+Ph4lS9fXkOHDtWpU6d8qoNgVQTz58/XmDFjNHnyZH3zzTdq0aKFevXqpSNHjgS6tEvaypUrNWLECK1bt05LlizRuXPndMMNN+j06dOuPo8++qg++eQTvffee1q5cqV++eUX9e/fP4BVX/o2bNig1157TVdddZVbO2NRco4fP65OnTopPDxcn332mb7//ntNmzZNFSpUcPWZOnWqXnrpJb366qtav369ypUrp169euns2bMBrPzS8+yzz+qVV17Ryy+/rO3bt+vZZ5/V1KlT9Y9//MPVh7Hwj9OnT6tFixaaOXOmx+nebPeBAwfqu+++05IlS7Rw4UJ9+eWXeuCBB3wrxMBn7dq1MyNGjHA9zsnJMTVq1DDJyckBrKrsOXLkiJFkVq5caYwx5sSJEyY8PNy89957rj7bt283kszatWsDVeYl7eTJk6Zx48ZmyZIlpmvXruaRRx4xxjAWJW3ixImmc+fOhU53Op2mWrVq5rnnnnO1nThxwkRGRpp33323JEosM/r06WOGDBni1ta/f38zcOBAYwxjUVIkmQ8//ND12Jvt/v333xtJZsOGDa4+n332mXE4HObnn3/2et0csfJRVlaWUlJS1LNnT1dbSEiIevbsqbVr1wawsrInLS1N0u83w05JSdG5c+fcxqZJkyaqU6cOY+MnI0aMUJ8+fdy2ucRYlLSPP/5Ybdu21R133KGqVauqVatWev31113T9+7dq0OHDrmNR0JCgtq3b894WNaxY0ctXbpUu3btkiRt2bJFq1ev1h/+8AdJjEWgeLPd165dq/Lly6tt27auPj179lRISIjWr1/v9bq4CbOPfvvtN+Xk5CgxMdGtPTExUTt27AhQVWWP0+nU6NGj1alTJzVv3lySdOjQIUVERKh8+fJufRMTE3Xo0KEAVHlpmzdvnr755htt2LChwDTGomT9+OOPeuWVVzRmzBj9+c9/1oYNGzRq1ChFRERo0KBBrm3u6X2L8bDrscceU3p6upo0aaLQ0FDl5OTo6aef1sCBAyWJsQgQb7b7oUOHVLVqVbfpYWFhqlixok9jQ7BCUBoxYoS+/fZbrV69OtCllEkHDhzQI488oiVLligqKirQ5ZR5TqdTbdu21d///ndJUqtWrfTtt9/q1Vdf1aBBgwJcXdmyYMECvf3223rnnXd0xRVXaPPmzRo9erRq1KjBWJQRfBXoo8qVKys0NLTAr5sOHz6satWqBaiqsmXkyJFauHChli9frlq1arnaq1WrpqysLJ04ccKtP2NjX0pKio4cOaLWrVsrLCxMYWFhWrlypV566SWFhYUpMTGRsShB1atXV7NmzdzamjZtqv3790uSa5vzvuV/48eP12OPPaa7775bV155pe699149+uijSk5OlsRYBIo3271atWoFfoSWnZ2tY8eO+TQ2BCsfRUREqE2bNlq6dKmrzel0aunSperQoUMAK7v0GWM0cuRIffjhh1q2bJnq16/vNr1NmzYKDw93G5udO3dq//79jI1lPXr00LZt27R582bXX9u2bTVw4EDXvxmLktOpU6cClx7ZtWuX6tatK0mqX7++qlWr5jYe6enpWr9+PeNhWUZGhkJC3D9aQ0ND5XQ6JTEWgeLNdu/QoYNOnDihlJQUV59ly5bJ6XSqffv23q+s2Kfel0Hz5s0zkZGRZs6cOeb77783DzzwgClfvrw5dOhQoEu7pD300EMmISHBrFixwhw8eND1l5GR4eozfPhwU6dOHbNs2TKzceNG06FDB9OhQ4cAVl125P1VoDGMRUn6+uuvTVhYmHn66afN7t27zdtvv21iYmLMW2+95erzzDPPmPLly5t///vfZuvWreaWW24x9evXN2fOnAlg5ZeeQYMGmZo1a5qFCxeavXv3mn/961+mcuXKZsKECa4+jIV/nDx50mzatMls2rTJSDLTp083mzZtMvv27TPGeLfde/fubVq1amXWr19vVq9ebRo3bmwGDBjgUx0EqyL6xz/+YerUqWMiIiJMu3btzLp16wJd0iVPkse/2bNnu/qcOXPGPPzww6ZChQomJibG9OvXzxw8eDBwRZch+YMVY1GyPvnkE9O8eXMTGRlpmjRpYv7nf/7HbbrT6TRJSUkmMTHRREZGmh49epidO3cGqNpLV3p6unnkkUdMnTp1TFRUlGnQoIH5y1/+YjIzM119GAv/WL58ucfPiEGDBhljvNvuR48eNQMGDDCxsbEmPj7eDB482Jw8edKnOhzG5LkcLAAAAIqMc6wAAAAsIVgBAABYQrACAACwhGAFAABgCcEKAADAEoIVAACAJQQrAAAASwhWAMo8h8Ohjz76qMjzr1ixQg6Ho8C9EX11//3369Zbby3WMgAEFsEKgN/9+uuveuihh1SnTh1FRkaqWrVq6tWrl9asWRPo0qzo2LGjDh48qISEhECXAiDAwgJdAIBL32233aasrCzNnTtXDRo00OHDh7V06VIdPXo00KVZERERoWrVqgW6DAClAEesAPjViRMntGrVKj377LPq3r276tatq3bt2mnSpEnq27evq9/06dN15ZVXqly5cqpdu7YefvhhnTp1yjV9zpw5Kl++vBYuXKjLL79cMTExuv3225WRkaG5c+eqXr16qlChgkaNGqWcnBzXfPXq1dNTTz2lAQMGqFy5cqpZs6Zmzpx5wZoPHDigO++8U+XLl1fFihV1yy23KDU1tdD++b8KzK31888/V9OmTRUbG6vevXvr4MGDrnlycnI0ZswYlS9fXpUqVdKECROU/w5jTqdTycnJql+/vqKjo9WiRQu9//77kiRjjHr27KlevXq55jt27Jhq1aqlxx9//MKDAsBvCFYA/Co2NlaxsbH66KOPlJmZWWi/kJAQvfTSS/ruu+80d+5cLVu2TBMmTHDrk5GRoZdeeknz5s3T4sWLtWLFCvXr10+ffvqpPv30U7355pt67bXXXOEj13PPPacWLVpo06ZNeuyxx/TII49oyZIlHus4d+6cevXqpbi4OK1atUpr1qxxBaOsrCyvn3dGRoaef/55vfnmm/ryyy+1f/9+jRs3zjV92rRpmjNnjmbNmqXVq1fr2LFj+vDDD92WkZycrDfeeEOvvvqqvvvuOz366KO65557tHLlSjkcDs2dO1cbNmzQSy+9JEkaPny4atasSbACAsnCDaUB4ILef/99U6FCBRMVFWU6duxoJk2aZLZs2XLBed577z1TqVIl1+PZs2cbSWbPnj2utgcffNDExMS43X2+V69e5sEHH3Q9rlu3rundu7fbsu+66y7zhz/8wfVYkvnwww+NMca8+eab5vLLLzdOp9M1PTMz00RHR5vPP//cY63Lly83kszx48cLrXXmzJkmMTHR9bh69epm6tSprsfnzp0ztWrVMrfccosxxpizZ8+amJgY89VXX7mta+jQoWbAgAGuxwsWLDBRUVHmscceM+XKlTO7du3yWCOAksERKwB+d9ttt+mXX37Rxx9/rN69e2vFihVq3bq15syZ4+rzn//8Rz169FDNmjUVFxene++9V0ePHlVGRoarT0xMjBo2bOh6nJiYqHr16ik2Ntat7ciRI27r79ChQ4HH27dv91jrli1btGfPHsXFxbmOtlWsWFFnz57VDz/84PVzzl9r9erVXXWlpaXp4MGDat++vWt6WFiY2rZt63q8Z88eZWRk6Prrr3fVERsbqzfeeMOtjjvuuEP9+vXTM888o+eff16NGzf2ukYA9nHyOoASERUVpeuvv17XX3+9kpKS9Kc//UmTJ0/W/fffr9TUVN1000166KGH9PTTT6tixYpavXq1hg4dqqysLMXExEiSwsPD3ZbpcDg8tjmdziLXeerUKbVp00Zvv/12gWlVqlTxejme6jL5zqG6WB2StGjRItWsWdNtWmRkpOvfGRkZSklJUWhoqHbv3u318gH4B8EKQEA0a9bMde2olJQUOZ1OTZs2TSEh5w+kL1iwwNq61q1bV+Bx06ZNPfZt3bq15s+fr6pVqyo+Pt5aDXklJCSoevXqWr9+vbp06SJJys7OVkpKilq3bi3p/PaJjIzU/v371bVr10KXNXbsWIWEhOizzz7TjTfeqD59+ui6667zS90ALo5gBcCvjh49qjvuuENDhgzRVVddpbi4OG3cuFFTp07VLbfcIklq1KiRzp07p3/84x+6+eabtWbNGr366qvWalizZo2mTp2qW2+9VUuWLNF7772nRYsWeew7cOBAPffcc7rlllv05JNPqlatWtq3b5/+9a9/acKECapVq5aVmh555BE988wzaty4sZo0aaLp06e7XWA0Li5O48aN06OPPiqn06nOnTsrLS1Na9asUXx8vAYNGqRFixZp1qxZWrt2rVq3bq3x48dr0KBB2rp1qypUqGClTgC+4RwrAH4VGxur9u3ba8aMGerSpYuaN2+upKQkDRs2TC+//LIkqUWLFpo+fbqeffZZNW/eXG+//baSk5Ot1TB27Fht3LhRrVq10t/+9jdNnz5dvXr18tg3JiZGX375perUqaP+/furadOmGjp0qM6ePWv1CNbYsWN17733atCgQerQoYPi4uLUr18/tz5PPfWUkpKSlJycrKZNm6p3795atGiR6tevr19//VVDhw7VE0884TrKNWXKFCUmJmr48OHW6gTgG4fx5Ut/AAgy9erV0+jRozV69OhAlwKgDOCIFQAAgCUEKwAAAEv4KhAAAMASjlgBAABYQrACAACwhGAFAABgCcEKAADAEoIVAACAJQQrAAAASwhWAAAAlhCsAAAALCFYAQAAWPL/SQAukP39cpYAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "automl = AutoML()\n",
    "settings = {\n",
    "    \"time_budget\": 3,  # total running time in seconds\n",
    "    \"metric\": 'accuracy', \n",
    "    \"estimator_list\": [\"rf\", \"kneighbor\", \"xgboost\"],\n",
    "    \"task\": 'classification',  # task type    \n",
    "    \"log_file_name\": 'undestanding_cross_validation_default.log',\n",
    "    \"log_training_metric\": True,  # whether to log training metric\n",
    "    \"keep_search_state\": True, # needed if you want to keep the cross validation information\n",
    "    \"eval_method\": \"cv\",\n",
    "    #\"split_type\": \"group\",\n",
    "    #\"groups\": groups,\n",
    "    \"n_splits\": 3\n",
    "}\n",
    "\n",
    "automl.fit(X, y, **settings)\n",
    "\n",
    "f, ax = plt.subplots(1,1)\n",
    "plot_cv_indices(automl._state.kf, X, y, groups, ax, automl._state.kf.get_n_splits())"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Set the split type to groups and provide the groups to run a GroupKFold instead"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n",
      "/usr/local/lib/python3.9/site-packages/xgboost/sklearn.py:1395: UserWarning: `use_label_encoder` is deprecated in 1.7.0.\n",
      "  warnings.warn(\"`use_label_encoder` is deprecated in 1.7.0.\")\n"
     ]
    },
    {
     "data": {
      "image/png": "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7dmzx2Pa0NBQPfvss+7hOnXqaM2aNVqwYIF69uyp9PR0paWl6Z577tG1114rSUpMTHRPv2/fPo0aNUr169eXJNWrV++yvaWkpHisDwAAIKcS91Xgtm3blJmZqXbt2hVq+hkzZqhJkya65pprFBUVpX/84x/at2+fJKlixYrq16+fOnTooM6dO+ull17SoUOH3PMOHz5cjzzyiNq3b6+JEydq165dl13XmDFjlJaW5n7s37+/6BsKAABKnRIXrCIiIgo97bx58zRy5Ej1799fn376qbZs2aKHHnpIWVlZ7mlmzZqlNWvWqGXLlpo/f76uv/56rV27VpL0zDPP6Ntvv9Xdd9+tzz77TA0aNNDixYsLXJ/T6VRMTIzHAwAA4JISF6zq1auniIgILVu27IrTpqamqmXLlnriiSfUqFEjXXfddfmedWrUqJHGjBmjL774QklJSZo799dfab3++uv15JNP6tNPP1X37t01a9Ysq9sDAADKjhIXrMLDw/XHP/5Ro0eP1htvvKFdu3Zp7dq1+uc//5ln2nr16mnDhg365JNPtGPHDo0dO1br1693j9+9e7fGjBmjNWvWaO/evfr000/1ww8/KDExUWfPntXgwYO1YsUK7d27V6mpqVq/fr3HNVgAAADeKHEXr0vS2LFjFRISonHjxungwYOKj4/X448/nme6xx57TJs3b9b9998vh8OhXr166YknntBHH30kSYqMjNT27ds1Z84cHTt2TPHx8Ro0aJAee+wxXbhwQceOHVPfvn115MgRVa5cWd27d+fidAAAUGQlMlgFBQXp6aef1tNPP51nnDG/3kPJ6XRq1qxZeb6+S0lJkSTFxcUVeM1UWFiY/vWvf1np14RGylzhJszKde+m4t6E2eS675M3N1/Nr5f8lnelnv19E+acPbtvspmj55J2E+biHLOrUbvS88LGPs5vefndfDW/dRS2l+Kso8g9F/L1XZTX2aV5r/b7wNU83rafA7bfL3LPW5z31cLOW5znT1Gms/F6tH0TZtvvA1eLw+RMKvBKenq6YmNjlZaWxoXsAAAECF9+fpe4a6wAAAACFcEKAADAEoIVAACAJQQrAAAASwhWAAAAlhCsAAAALCFYAQAAWEKwAgAAsIRgBQAAYAnBCgAAwBKCFQAAgCUEKwAAAEsIVgAAAJYQrAAAACwhWAEAAFhCsAIAALCE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sALgU8eOHdN9992nhx9+WDfffLOio6O1YcMGTZo0SV27dpUkXXfddTp//rxefvllde7cWampqZo5c6a1HlJTUzVp0iR169ZNS5cu1cKFC7VkyZJ8p+3du7cmT56srl276rnnnlONGjW0d+9eLVq0SKNHj1aNGjWs9DR06FBNnDhR9erVU/369TV16lSPHxiNjo7WyJEj9eSTT8rlcum2225TWlqaUlNTFRMTo+TkZC1ZskSvv/661qxZo8aNG2vUqFFKTk7W119/rQoVKljpE4B3uMYKgE9FRUWpefPmmjZtmlq3bq2kpCSNHTtWAwYM0CuvvCJJatiwoaZOnaoXXnhBSUlJevvtt5WSkmKthxEjRmjDhg1q1KiR/vKXv2jq1Knq0KFDvtNGRkbq888/V0JCgrp3767ExET1799f586ds3oGa8SIEXrwwQeVnJysFi1aKDo6Wvfee6/HNBMmTNDYsWOVkpKixMREdezYUUuWLFGdOnX0888/q3///nrmmWfcZ7meffZZxcXF6fHHH7fWJwDvOIw3X/oDQICpXbu2hg0bpmHDhvm7FQBlAGesAAAALCFYAQAAWMJXgQAAAJZwxgoAAMASghUAAIAlBCsAAABLCFYAAACWEKwAAAAsIVgBAABYQrACAACwhGAFAABgCcEKAADAkv8PPNBBx4nmdVYAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "settings[\"split_type\"] = \"group\"\n",
    "settings[\"groups\"] = groups\n",
    "settings[\"log_file_name\"] = 'undestanding_cross_validation_groupkfold.log'\n",
    "\n",
    "automl = AutoML()\n",
    "automl.fit(X, y, **settings)\n",
    "\n",
    "f, ax = plt.subplots(1,1)\n",
    "plot_cv_indices(automl._state.kf, X, y, groups, ax, automl._state.kf.get_n_splits())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.16"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "949777d72b0d2535278d3dc13498b2535136f6dfe0678499012e853ee9abcab1"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
